#ifndef _LIST_H_
#define _LIST_H_
#include "common.h"
#define SIZE  20
#define SYS_ERROR -1
#define SYS_OK  0
#define SYS_UPDATE_MAX_FD -2
//设备信息结构体
typedef struct DeviceFd
{
    int fd;
    long lTime;
} dev_fd;

//List顺序表结构体
typedef struct List
{
    dev_fd data[SIZE];
    int iCount;
} List;

extern List* g_pList;
//全局变量--顺序表指针

//创建顺序表，固定长度
List* CreateList();
//销毁顺序表
void DestroyList(List* pList);
//删除顺序表中指定位置的元素
int DeleteList(List* pList, dev_fd* pData, int iOffset);
//向顺序表中插入数据
int InsertList(List* pList, dev_fd tData, int iOffset);
//修改元素-在顺序表中用tNew替换tOld
int UpdateList(List* pList, dev_fd tNew, dev_fd tOld);
//在顺序表中查找指定的元素，并返回下标，失败返回SYS_ERROR
int SearchItem(List* pList, dev_fd  pData);
//显示顺序表中元素
void ShowList(List* pList);
//删除在顺序表中超时的设备信息并关闭文件描述符，并返回是否需要修改select监听范围
int DeleteTimeOutDevFromList(List* pList, fd_set* pSet, int iMax);


#endif
